package com.twotiger.and.util;

import java.io.File;

import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.view.View.OnClickListener;
import app.twotiger.p2p.R;

import com.twotiger.and.service.UpdateService;
import com.twotiger.and.util.PromptManager.ReChargeClickListener;

public class UpdateVersionUtil {

    /**
     * @param context
     * @param downurl
     * @方法名称:ShowUpAppDialog
     * @描述: 预留 给推送新版本使用
     * @创建人：曹睿翔
     * @创建时间：2014年9月18日 下午12:15:46
     * @备注：
     * @返回类型：void
     */
    public static void ShowUpAppDialog(final Context context, final String downurl) {
        PromptManager.showConfirmAlertCommon(context, 0, "提示", "检测到新版本，是否升级？",
            "确定", "取消", true, new ReChargeClickListener() {

                @Override
                public void onClickConfirm() {
                    beginToDownload(context, downurl);
                }

                @Override
                public void onClickCancel() {

                }
            });
    }
    
    //开启服务下载apk
    public static void beginToDownload(Context context, String downurl){
        Intent updateIntent = new Intent(context, UpdateService.class);
        updateIntent.putExtra("app_name",
            context.getResources().getString(R.string.app_name));
        updateIntent.putExtra("downurl", downurl);
        context.startService(updateIntent);
    }

    // 下载完成后打开安装apk界面
    public static void installApk(File file, Context context) {
        LogUtil.info("版本更新获取sd卡的安装包的路径=" + file.getAbsolutePath());
        Intent openFile = getFileIntent(file);
        context.startActivity(openFile);

    }

    public static Intent getFileIntent(File file) {
        Uri uri = Uri.fromFile(file);
        String type = getMIMEType(file);
        Intent intent = new Intent("android.intent.action.VIEW");
        intent.addCategory("android.intent.category.DEFAULT");
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setDataAndType(uri, type);
        return intent;
    }

    public static String getMIMEType(File f) {
        String type = "";
        String fName = f.getName();
        // 取得扩展名
        String end = fName.substring(fName.lastIndexOf(".") + 1, fName.length());
        if (end.equals("apk")) {
            type = "application/vnd.android.package-archive";
        } else {
            // /*如果无法直接打开，就跳出软件列表给用户选择 */
            type = "*/*";
        }
        return type;
    }
}
